Introducción a los patrones de diseño
Definición
Los patrones de diseño son una herramienta que nos permite reutilizar soluciones a problemas comunes, de esta forma se evita tener que reinventar la rueda cada vez que se presenta un problema.
Son una guía para el diseño de software, nos permiten diseñar software de forma más eficiente y con mayor calidad.
Más información
Se puede encontrar más información sobre los patrones de diseño en:
Categorías principales de los patrones de diseño
- Los patrones de diseño se agrupan en diferentes categorías según el propósito y el área de aplicación en el diseño de software, estas categorías proporcionan un marco conceptual que ayuda a entender cómo se utilizan los patrones y cuál es su función en el desarrollo de sistemas de software.
Categoría | Propósito | Características | Ejemplos |
---|---|---|---|
Creacionales | Crear objetos de manera flexible y reutilizable | Proporcionan mecanismos para la creación de objetos de forma dinámica, sin acoplar el código a las clases concretas. | Singleton, Factory Method, Abstract Factory, Builder, Prototype |
Estructurales | Se ocupan de la composición de clases y objetos para formar estructuras más grandes y complejas. | Se centran en cómo se organizan y relacionan las clases y objetos para lograr una mayor flexibilidad y reutilización del código. | Adapter, Composite, Proxy, Facade, Decorator, Data Access Object (DAO), Data Transfer Object (DTO). |
Comportamiento | Se centran en la comunicación y la asignación de responsabilidades entre objetos. | Estos patrones definen cómo los objetos interactúan entre sí y cómo distribuyen las tareas y responsabilidades en un sistema de software. | Strategy, Observer, Command, Mediator, Memento, State, Template Method, Visitor. |
Arquitectónicos | Se ocupan de la estructura general de un sistema de software. | Estos patrones definen la estructura general de un sistema de software y proporcionan un marco de trabajo para organizar y coordinar los componentes de un sistema. | Model-View-Controller (MVC), Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Layered Architecture, Microservices, Event-Driven Architecture, Hexagonal Architecture, Clean Architecture. |